package com.jiayuge.poiStudy.service;

import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.data.TextRenderData;
import com.deepoove.poi.data.style.Style;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;

public class GenerateWordFile {
    public static void main(String[] args) throws IOException {
        //生成数据模板
        XWPFTemplate template = XWPFTemplate.compile("./src/main/java/com/jiayuge/poiStudy/files/wordTemplate.docx");

        //导出路径
        FileOutputStream outputStream = new FileOutputStream("./src/main/java/com/jiayuge/poiStudy/files/word.docx");

        /* 测试表格插入---------------------------------------*/
        /* RowRenderData: 渲染表格 --------------------------*/
        /* TextRenderData: 渲染文本 -------------------------*/
        /* TableStyle: 表格样式设置 --------------------------*/
        /* Style: 文本样式设置 -------------------------------*/

        //声明map存放模板中的内容
        HashMap<String, Object> data = new HashMap<String, Object>();
        data.put("title","hello world");
        /*测试文本插入------------------------------*/
        //先定义文本对象
        TextRenderData textRenderData = new TextRenderData();
        //设置文本内容
        textRenderData.setText("张三");

        //设置文本格式
        Style style = new Style();
        style.setBold(true);
        style.setColor("000F00");
        style.setFontSize(20);
        textRenderData.setStyle(style);
        //将文本数据和模板中变量对应
        data.put("name", textRenderData);

        //开始数据填充-将map数据放入模板
        template.render(data);
        //将模板数据写入outputStream中 也就是目标文档 （保护原模版格式 方便下次使用）
        template.write(outputStream);

        //刷新流
        outputStream.flush();
        //关闭流
        outputStream.close();
        //关闭模板
        template.close();

    }


}
